Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.04.2014, 14:37
Аспирант
Отправить личное сообщение для skillful Посмотреть профиль Найти все сообщения от skillful
 
Регистрация: 18.09.2012
Сообщений: 55

Передача данных ajax-ом
Здравствуйте. Есть такой вот код
var value = '15';

$.ajax({
            url: url_base + 'obrabotchik.html',
            data: {value: value},
            type: 'POST',
            dataType : "json",
		    error:
		        function(){
		            alert('there is no file the handler');
		        },
            success: function(data){
                var valueId = data.value.id;
				
	alert('@@@@@@@@@@@@: ' + valueId ); //Сдесь срабатывает alert, т.е. ошибки нету (показывает правильный результат)
		
                //return false;
            }
        });
alert(valueId); // а здесь уже ошибка


Как вывести переменную valueId ниже кода отправки запроса?
Ответить с цитированием
  #2 (permalink)  
Старый 28.04.2014, 15:03
Аватар для animhotep
Профессор
Отправить личное сообщение для animhotep Посмотреть профиль Найти все сообщения от animhotep
 
Регистрация: 17.01.2013
Сообщений: 887

можно так
var value = '15',
     valueId;

$.ajax({
            url: url_base + 'obrabotchik.html',
            data: {value: value},
            type: 'POST',
            dataType : "json",
		    error:
		        function(){
		            alert('there is no file the handler');
		        },
            success: function(data){
                valueId = data.value.id;
				
	alert('@@@@@@@@@@@@: ' + valueId ); //Сдесь срабатывает alert, т.е. ошибки нету (показывает правильный результат)
		
                //return false;
            }
        });
alert(valueId); // а здесь уже ошибка
Ответить с цитированием
  #3 (permalink)  
Старый 28.04.2014, 15:05
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от skillful
Как вывести переменную valueId ниже кода отправки запроса?
Думаю вам нужно почитать разницу между асинхронностью и синхронностью.
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #4 (permalink)  
Старый 28.04.2014, 17:16
Аватар для Makarov
Профессор
Отправить личное сообщение для Makarov Посмотреть профиль Найти все сообщения от Makarov
 
Регистрация: 08.07.2013
Сообщений: 212

Запрос асинхронный, после его отправки код дальше будет выполняться, не дожидаясь ответа, то есть вы в вашем коде пытаетесь вызвать не существующую еще переменную valueId.

Если вы хотите выполнить какой-то код после прихода запроса, то вызовите его в функции success или error соответственно. Это может быть не очень ясно с начала, но вообще асинхронность - это штука которую необходимо понимать js-разработчику
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ajax передача данных с setInterval Segol Общие вопросы Javascript 0 07.07.2013 09:36
Передача данных через Ajax (IE) byFahrenheit AJAX и COMET 5 01.03.2013 16:06
ajax, передача данных методом пост makcstroi AJAX и COMET 9 03.08.2012 18:27
ajax чат проблема с записью сообщения в базу данных mysql. Niksik AJAX и COMET 4 15.01.2012 14:04
Синхронный запрос данных по AJAX Shasoft AJAX и COMET 2 03.03.2009 14:07